package com.yc.mybatis.mapper;

import com.yc.mybatis.bean.Cinema;
import com.yc.mybatis.bean.Hall;
import com.yc.mybatis.bean.MovieType;
import com.yc.mybatis.bean.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface CinemaMapper {

    List<User> selectLikeName(String name);

    int insert(Cinema cinema);
    int updateById(Cinema cinema);
    int deleteById(int id);
    Cinema selectById(int iasdfasdfasfdd);

    /**
     * 报错提示: Parameter 'mid' not found
     * mid 未找到,
     * 原因: 单参数方法, 对参数名没有限制
     *      多参数的名字不是参数本身的名字, 必须使用 @Param 标注的名字
     *      多参数如果使用实体对象或map集合传入, 那么不需要使用 @Param 标注
     *      即: 属性名(key)就是参数名
     *
     * 报错2: MyBatis 字段映射默认规则, 字段名 == 属性名
     *          movie_id != movieId
     * @param mid
     * @param tid
     * @return
     */
    MovieType selectByMidAndTid(@Param("mid")int kjhkjhmid, @Param("tid")int tid);

    Hall selectHallById(int id);

    // 根据地址查影院
    List<Cinema> selectCinemaByAddress(String address);



    // 根据地址查影院
    List<Cinema> selectByObject(Cinema cinema);
    // 更新非空字段
    int updateByIdWithNotNull(Cinema cinema);

    List<Cinema> selectWithFlag(@Param("name")String name, @Param("flag")int flag);

    List<Cinema> selectIdIn(List<Integer> list);

    List<Cinema> selectAllOrderBy(String order);

    List<Map<String,Object>> selectBySql(String sql);




}
